#include <REGX52.H>
/**
 * 按照如下顺序流动
 * 1357
 * 8642
 * 1357
 */
void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}

void main(void) {
     // 定义完整流水灯序列（共阴极，低电平点亮）
    unsigned char led_seq[8] = {
        0xFE,  // 0: 1 (P2.0)
        0xFB,  // 1: 3 (P2.2)
        0xEF,  // 2: 5 (P2.4)
        0xBF,  // 3: 7 (P2.6)
        0x7F,  // 4: 8 (P2.7)
        0xDF,  // 5: 6 (P2.5)
        0xF7,  // 6: 4 (P2.3)
        0xFD   // 7: 2 (P2.1)
    };
    unsigned char i;

    while (1) {
        // 按 1→3→5→7→8→6→4→2 顺序流水点亮
        for (i = 0; i < 8; i++) {
            P2 = led_seq[i];
            delay_ms(500);  // 每个LED亮500ms
        }
    }
}